<!doctype html>
<html>
  <head>
    <meta charset="utf=8">
    <title>Test of activation state</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
  </head>
  <body>
    <a id="anchor" href="#foo">anchor</a>
    <button id="button">button</button>
    <label id="label">Label</label>
    <input type="submit" id="input" />

    <span id="foo">foo</span>
  </body>

  <script>
    function test_activation_state(element, selector) {
      return function () {
        element.enterFormalActivationState();
        var active = document.querySelector(selector);
        assert_true(active.id == element.id, selector + " was active");
        element.exitFormalActivationState();
      }
    }

    test(
      test_activation_state(document.getElementById("anchor"), "a:active"),
      "Activate anchor");

    test(
      test_activation_state(document.getElementById("button"), "button:active"),
      "Activate button");

    test(
      test_activation_state(document.getElementById("label"), "label:active"),
      "Activate label");

    test(
      test_activation_state(document.getElementById("input"), "input:active"),
      "Activate input");

    test(function () {
      assert_throws_dom("NotSupportedError", function () {
        var foo = document.getElementById("foo");
        foo.enterFormalActivationState();
      });
    }, "Activation invalid for span");
  </script>
</html>

